home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / lambdoc.arc / ATARI.MAN next >
Text File  |  1989-03-15  |  36KB  |  801 lines

  1. **************************************************************************
  2. [LAMBDA].1.38a.ATARI.ST [890309][\man\atari.man]: ATARI.ST Technical Notes
  3. **************************************************************************
  4. --------------------------------------------------------------------------
  5. [LAMBDA.TN.000].ATARI.ST.[1.37][890226] BOOTing LAMBDA, SHELL alternatives
  6. --------------------------------------------------------------------------
  7.  
  8. 0 CURRENT VERSION:   
  9.   
  10. LAMBDA.ATARI.ST [1.39a][890311][CC: SOZOBON <1.01: 1988>][LIBC: dLibs 1.2]
  11.  
  12. 1 INTRODUCTION.
  13.  
  14. LAMBDA is a lambda-calculus/combinatory-logic interpreter and combinatory-
  15. code generator. The present version [ATARI.ST][1.3X] of LAMBDA has a built-
  16. in line-editor [EDIT: derived from Ken Thompson's ED] and an internal shell 
  17. [META], incorporating a minimal number of TOS-supported commands/functions.
  18.  
  19. General information about ["type-free"] lambda-calculi and combinators can
  20. be recovered from the bibliography listed in the LAMBDA REFERENCE MANUAL
  21. [see: \man\lambda.man].
  22.  
  23. Roughly speaking, lambda-calculus is a theoretical tool/formalism equivalent
  24. to a Turing machine, as regards its definability power. In practice, lambda-
  25. calculus techniques have been also used, during the last ten years, in
  26. compiler-design for several functional programming languages, in automated
  27. reasoning [design of proof-assistants and proof-checkers] and in expert 
  28. systems [proof-pattern recognition].
  29.  
  30. In a sense, the lambda-calculus is at the root of the modern computability 
  31. theory and of our computing engines, whether ALGOLoidal or not [= merely
  32. FUNCtional]. As a mere theoretical tool, it has also a certain MUSEAL value,
  33. whence the idea to put it in the same environment with another master-piece 
  34. of computer art: Ken Thompson's ED [the root of the UN*X-like editors and 
  35. pattern-matching tools].
  36.  
  37. 1 CONTENTS.
  38.  
  39. The present archive contains the last ATARI.ST version of the binary,  
  40. general LAMBDA-documentation [default in: \man\lambda.man], a list of 
  41. system-specific features [LAMBDA.ATARI.ST: Technical Notes; default 
  42. edited in: \man\atari.man], applying to this implementation and, 
  43. optionally, a public domain Bourne-like SHELL [if present, either 
  44. \bin\gsh.prg or else ARChived in: \etc\pd_shell].
  45.  
  46.    NOTE: MACintosh [MFS], MSDOS, UN*X [BSD] as well as UN*X-like [e. g. 
  47.    MINIX] variants of the present implementation are also available.
  48.  
  49. 2 THE PUBLIC DOMAIN SHELL.
  50.  
  51. The SHELL interpreter [if present, in: \bin] and the corresponding 
  52. documentation [if present, in: \doc] are identified as:
  53.  
  54.    BIN: GSH.PRG = GULAM, by Prabhaker Mateti, BETA-test: 1.03.04.05.
  55.         NB: The binary is patched according to a procedure described 
  56.         in the [GSH] DIGEST in order to fit the ATARI.ST UK-KEYBOARD 
  57.         settings. Archived is also the original US-KEYBOARD variant, 
  58.         as posted on the [UUNET].NEWS [last: January 1989].
  59.    MAN: A REFERENCE MANUAL FOR GULAM (c) 1987 Prabhaker Mateti,
  60.    DOC: [GSH] PROFILES: sample initialization scripts for GULAM,
  61.    DOC: [GSH] DIGEST: [UUNET].NEWS discussions [1987-88] around GULAM.
  62.  
  63. Both LAMBDA and the SHELL are stand-alone programs. Other Bourne-like 
  64. SHELLs can be used in conjunction with LAMBDA [see: section 5 below]. 
  65.  
  66.    NOTE: Since the SHELL interpreter identified here as GSH.PRG, as 
  67.    well as the appended SHELL documenation have been posted several 
  68.    times already on the [UUNET].NEWS.[comp.binaries.atari.st], the 
  69.    LAMBDA-package archived here may NOT contain the SHELL. 
  70.  
  71. The ATARI.ST version of LAMBDA identifies a SHELL according to specific 
  72. internal conventions ["shell-types"], as described below. Several [non-
  73. public domain] software-alternatives are listed later in these notes. 
  74.     
  75. 3 BOOTING LAMBDA: THE "PRIVATE" ENVIRONMENT.
  76.  
  77. BOOTing LAMBDA is a system-specific operation. Described here are only 
  78. the ATARI.ST modes. (This applies to any ATARI.ST [MEGA] configuration.) 
  79.  
  80. While BOOTing it on ATARI.ST, LAMBDA initializes a "private" environment 
  81. consisting of the following variables (below, a <drive>-id is as identified 
  82. by TOS; it can be a physical volume, a ram-disk, a hard-disk partition,
  83. etc.):
  84.  
  85.         $HOME   = {home-drive:} 
  86.                 = HOME- [and/or BOOT-]drive id for LAMBDA,
  87.                   NB: if any, the $SHELL is also located on $HOME
  88.         $BIN    = {bin-drive:}\bin\ 
  89.                 = directory of executables accessible from LAMBDA
  90.                   NB: by default, the system $EDITOR is located on $BIN
  91.         $LIB    = {lib-drive:}\lib\
  92.                 = directory for various libraries, 
  93.                   default location for the alternate font-files
  94.                   $LIB\<font-name>.fnt [must be FED-format]
  95.         $TMP    = {tmp-drive:}\tmp\
  96.                 = directory for temporary files, 
  97.                   NB: used only by LAMBDA's built-in EDITor
  98.         $SHELL  = {home-drive:}\bin\<shell-type>sh.prg
  99.                   NB: <shell-type> ranges over {a,b,c,g,m,s}
  100.         $EDITOR = {bin-drive:}\bin\ed.prg
  101.                 = system editor 
  102.                   NB: this can be anything, within reason, if you 
  103.                   don't like LAMBDA's built-in EDITor.
  104.  
  105. In order to have full compatibility with the different "environment styles" 
  106. supported by the ATARI.ST machines, these "environmental" variables are 
  107. NEVER EXPORTED. Communication with the environment of the external SHELL 
  108. must be insured separately, by customizing as appropriate the current SHELL's 
  109. initialization script (running examples for several popular ATARI.ST shell 
  110. interpreters are also included in the archive).
  111.  
  112. LAMBDA recognizes its [physical or environmental] BOOT-location and, if no 
  113. other action is taken, it initializes, by default, the internal environmental 
  114. variables to the appropriate locations on $BOOT.
  115.  
  116.    EXAMPLES:
  117.  
  118.    (1) if LAMBDA is started from the DESKTOP, on internal disk a: 
  119.        [with an ATARI 1040ST], the following configuration is set:
  120.  
  121.       home-drive = bin-drive = lib-drive = tmp-drive = $BOOT = a:
  122.       $BIN       = a:\bin\
  123.       $LIB       = a:\lib\
  124.       $TMP       = a:\tmp\
  125.       $SHELL     = a:\bin\<default-shell-type>sh.prg
  126.       $EDITOR    = a:\bin\ed.prg
  127.  
  128.    (2) if started from a SHELL, $BOOT becomes the SHELL's actual $cwd-drive, 
  129.        no matter where is the SHELL located physically.
  130.  
  131. The BOOT-configuration can be altered in several ways, by calling LAMBDA 
  132. [or LAMBDA.TTP, as a DESKTOP program] with the appropriate option and/or 
  133. even at run-time (from the internal shell [META]).
  134.  
  135. The corresponding alteration flags are UN*X-like and the LAMBDA-options 
  136. affecting the drive-specifications, etc. are described below [as part of:
  137. LAMBDA.ATARI.ST Technical Notes].
  138.  
  139. --------------------------------------------------------------------------
  140. [LAMBDA.TN.001].ATARI.ST.[1.37][890226][Technical Note 001] LAMBDA-options
  141. --------------------------------------------------------------------------
  142.  
  143. 4. BOOTING LAMBDA WITH OPTIONS: lambda {, -bcefhilpstx<modifier> }
  144.  
  145.    [0] The LAMBDA-options follow, in general, the UN*X option pattern:
  146.  
  147.    format: -[lower-case-letter][upper-case-letter]<modifier>
  148.    
  149.    For [TOS-only]: upper-case option/modifier specifications are 
  150.    also allowed in order to accommodate the DESKTOP TTP-style calls.
  151.  
  152.    defaults: [DEFAULT][DEFAULT-ON-FAILURE]
  153.    - if not specified explicitly, the <modifier> has a [DEFAULT]
  154.    - outside its legal range, a <modifier> has a [DEFAULT-ON-FAILURE]
  155.        
  156.    [1] DRIVE-id specifications [TOS only]: options -behltx<drive>.
  157.   
  158.    Following TOS, a legal <drive>-id ranges over [a-p][A-P]:
  159.    - an illegal specification restores the [DEFAULT-ON-FAILURE],         
  160.    - if the modifier <drive> is absent, the [DEFAULT] is restored.
  161.   
  162.    On BOOTing LAMBDA, the default-drive configuration is as follows: 
  163.    - the OLD-DRIVE id     = [DEFAULT-ON-FAILURE] is set to [a:] and 
  164.    - the CURRENT-DRIVE id = [DEFAULT] is read off from the environment.
  165.   
  166.    The LAMBDA-options -behltx<drive> alter the default setting to <drive>.
  167.  
  168.    T